Django JSONField/HStoreField SQL 注入漏洞 (CVE-2019-14234)

Django JSONField/HStoreField SQL 注入漏洞 (CVE-2019-14234)

Django 于 2019 年 8 月 1 日发布了安全更新,修复了 JSONField 和 HStoreField 两个模型字段中的 SQL 注入漏洞。

参考链接:

该漏洞需要开发者使用JSONField/HStoreField;并且可以控制查询集的字段名称。Django 的内置应用程序 Django-Admin 受到影响,这为我们提供了一个简单的方法来重现该漏洞。

漏洞复现

环境启动后,就可以看到Django的主页了http://192.168.44.132:8000

首先,访问http://192.168.44.132:8000/admin/使用 usernameadmin和 passworda123123123登录到 Django-Admin 。

然后转到http://192.168.44.132:8000/admin/vuln/collection/模型的列表视图Collection

image-20210712212141883

添加detail__a'b=123到GET参数,其中detailJSONField:

1
http://192.168.44.132:8000/admin/vuln/collection/?detail__a%27b=123

可以看到单引号已经注入成功,SQL语句报错:

image-20210712212240753

0%